﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ConciseMarkupLanguage;
using Irony.Ast;
using Irony.Parsing;

namespace CML.Directives
{
    enum RequirementOptions
    {
        NotAllowed, 
        Optional, 
        Required,
    };

    abstract class DirectiveNode : AstNode
    {
        protected static readonly CmlGrammar CML = (CmlGrammar)Grammar.CurrentGrammar;

        public RequirementOptions ArgumentOptions = RequirementOptions.Optional;
        public RequirementOptions ContentOptions = RequirementOptions.Optional;
        public BnfExpression ArgumentExpression = CML.Empty;

    }

    class IfNode : DirectiveNode
    {
        public IfNode()
        {
            ArgumentOptions = RequirementOptions.Required;
            ArgumentExpression = CML.Empty;
        }

        public void Parse(AstNode[] argNodes)
        {

        }

        public void Evaluate()
        {
            
        }
    }
}
